import { defineEventHandler, EventHandlerRequest } from 'h3'; import { DB } from '~~/server/db/DB'; import { createErrorResponse, createSuccessResponse, IResponse } from '~~/server/utils/response'; export interface IChannel { id: number; model_id: number; parent_id: number; name: string; type: 'list'|'link', url: string; outlink: string; diyname: string; } export default defineEventHandler>>(async (event) => { try { const id = event.context.params?.id; if (!id) return createErrorResponse('分类ID不能为空'); const category = await DB.table('pr_cms_channel') .where('id', id) .where('status', 'normal') .first(); if (!category) return createErrorResponse('分类不存在'); const childs = await DB.table('pr_cms_channel') .where('status', 'normal') .where('parent_id', id) .orderBy('weigh', 'desc') .orderBy('id', 'desc') .get(); const parents : IChannel[] = []; let parentId = category.parent_id; while (parentId) { const parent = await DB.table('pr_cms_channel') .where('id', parentId) .where('status', 'normal') .first(); if (!parent) break; parents.push(parent); parentId = parent.parent_id; } category.parents = parents; category.childs = childs; return createSuccessResponse(category); } catch (error) { return createErrorResponse(error); } });